#ifndef __queue_H__
#define __queue_H__

#include "tree.h"

#define datatype_q BinaryTreeNode *
#define MAXSIZE_Q 30

typedef struct Queue
{
	datatype_q *base;
	int front, rear;
} Queue;

int InitQueue(Queue *queue);    //初始化队列

int EnQueue(Queue *queue, datatype_q data);    //元素入队函数

void DeQueue(Queue *queue);  //元素出队函数

int QueueIsEmpty(Queue *queue);   //判断队列是否为空

void Show(Queue *queue);   //打印队列函数

int Length(Queue *queue);  //求队列长度

void GetHead(Queue *queue, datatype_q *value); //获取队头元素

void Destory(Queue *queue);   //销毁队列

#endif
